<?php

namespace api\sms\driver;

abstract class Sms
{

    // 短信内容
    protected string $content = '';
    // 发送状态
    protected bool $sendStatus = false;
    // 错误信息
    protected string $errorMessage = '';
    // 配置
    protected array $config = [];

    public function __construct($config = [])
    {
        $this->config = $config;
    }

    /**
     * 发送短信
     *
     * @param string $phone 手机号
     * @param array $data 发送数据
     * @return bool
     */
    abstract public function sendSms(string $phone, array $data): bool;

    /**
     * 设置短信内容
     *
     * @param string $content 短信内容
     */
    public function setContent(string $content)
    {
        $this->content = $content;
    }

    /**
     * 获取短信内容
     *
     * @return string
     */
    public function getContent(): string
    {
        return $this->content;
    }

    /**
     * 设置发送状态
     *
     * @param bool $status 发送状态
     */
    public function setSendStatus(bool $status)
    {
        $this->sendStatus = $status;
    }

    /**
     * 获取发送状态
     *
     * @return bool
     */
    public function getSendStatus(): bool
    {
        return $this->sendStatus;
    }

    /**
     * 设置错误信息
     *
     * @param string $message 错误信息
     */
    public function setErrorMessage(string $message)
    {
        $this->errorMessage = $message;
    }

    /**
     * 获取错误信息
     *
     * @return string
     */
    public function getErrorMessage(): string
    {
        return $this->errorMessage;
    }
}
